package rothag.views.gamestep;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.DefaultListModel;
import javax.swing.DropMode;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import rothag.models.developpement.Developpement;
import rothag.controller.MainController;
import rothag.graphics.*;
import rothag.views.JPanelBase;

/**
 *
 * @author Gaetan, Gulian
 *
 */
public class SideDeveloppementJPanel extends JPanelBase {

    private ImageIcon image;
    protected JList developpementJList;
    private DefaultListModel listDeveloppement;

    /** Creates new form DeveloppementJPanel */
    public SideDeveloppementJPanel(MainController controller) {
        super(controller);

        // Récupération de l'image
        image = GraphicsHelper.getImageIcon(GraphicsParameters.pathCadreDev, this);
        if (image.getIconHeight() == -1) {
            GraphicsHelper.afficherErreur("Erreur", "Erreur lors de l'ouverture du fichier image : " + GraphicsParameters.pathCadreDev, this).setVisible(true);
            System.exit(1);
        }
        setOpaque(false);

        // Définition de la taille
        hauteur = image.getIconHeight();
        largeur = image.getIconWidth();

        Font font = GraphicsHelper.getFont(13, "bold");

        // Label
        JLabel label = new JLabel("Développements");
        label.setFont(font);
        label.setHorizontalAlignment(SwingConstants.CENTER);
        label.setForeground(Color.white);
        label.setBounds(10, 10, largeur - 20, 20);
        add(label);

        listDeveloppement = new DefaultListModel();

        // Ajout de la liste
        developpementJList = new JList(listDeveloppement);
        developpementJList.setBackground(new Color(0, 0, 0, 0));
        developpementJList.setOpaque(false);
        developpementJList.setBounds(10, 30, largeur - 20, hauteur - 20);
        developpementJList.setForeground(Color.white);
        developpementJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        add(developpementJList);

        developpementJList.setDropMode(DropMode.ON_OR_INSERT);

    }

    @Override
    public void paint(Graphics g) {
        if (image != null) {
            JLabel label = new JLabel(image);
            label.setBounds(0, 0, largeur, hauteur);
            add(label);
        }
        super.paint(g);
    }

    public void setDeveloppement(ArrayList<Developpement> listeDeveloppements) {
        listDeveloppement.clear();
        if (listeDeveloppements != null) {
            Iterator it = listeDeveloppements.iterator();
            while (it.hasNext()) {
                Developpement dev = (Developpement) it.next();
                listDeveloppement.addElement(dev.getNom());
            }
        }

        repaint();
    }

    public JList getDeveloppementJList() {
        return developpementJList;
    }

}
